package br.com.dallasmotopecas.compra.principal;

import java.io.Serializable;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import br.com.dallasmotopecas.util.exception.DirecionamentoPaginaException;
import br.com.dallasmotopecas.util.managerbean.AbstractManagerBean;

@ManagedBean(name="compraManagerBean")
@RequestScoped
public class CompraManagerBean extends AbstractManagerBean implements Serializable
{
	private static final long serialVersionUID = 1L;
	private static final int RELATORIO_PRODUTO_BAIXO_GIRO = 1;
	private static final int RELATORIO_PRODUTO_SEM_GIRO = 2;
	private static final int PROMOCAO_PRODUTOS = 14;
	private static final int TIPO_PROMOCAO = 15;
	private static final int PREMIACAO = 16;
	private static final int SAIR = 20;
			
	
	public CompraManagerBean()
	{
		
	}
	
	@PostConstruct
	private void inicializar()
	{
		try
		{
			if (!isUsuarioLogado())
			{
				redirecionarPagina("/Index.jsf");
				return;
			}
			processaPermissaoUsuario(getUsuarioLogado());
		}
		catch(DirecionamentoPaginaException e)
		{
			processarMensagem(MENSAGEM_FATAL, e.getMessage());
		}
	}
	
	@PreDestroy
	public void destroy()
	{
		
	}

	public void processaMenuCompra(int acao)
	{
		try
		{
			switch(acao)
			{
				case RELATORIO_PRODUTO_BAIXO_GIRO:
				{
					redirecionarPagina("/view/compra/relatorio/ManagerBaixoGiro.jsf");
					break;
				}
				case RELATORIO_PRODUTO_SEM_GIRO:
				{
					redirecionarPagina("/view/compra/relatorio/ManagerSemGiro.jsf");
					break;
				}
				case PROMOCAO_PRODUTOS:
				{
					redirecionarPagina("/view/compra/promocao/ManagerPromocaoProduto.jsf");
					break;
				}
				case TIPO_PROMOCAO:
				{
					redirecionarPagina("/view/compra/promocao/ManagerPromocaoTipo.jsf");
					break;
				}
				case PREMIACAO:
				{
					redirecionarPagina("/view/compra/promocao/ManagerPromocaoPremiacao.jsf");
					break;
				}
				case SAIR:
				{
					redirecionarPagina("/view/Principal.jsf");
					break;
				}
				default:
				{	
					redirecionarPagina("/view/Principal.jsf");
					break;
				}
			}
		}
		catch(DirecionamentoPaginaException e)
		{
			e.printStackTrace();
			processarMensagem(MENSAGEM_FATAL, e.getMessage());
		}
	}
}
